home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Toolbox / Visual Basic Toolbox (P.I.E.)(1996).ISO / rad / buddy / sampcol.cls < prev    next >
Text File  |  1996-04-16  |  3KB  |  107 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "CollectionClass"
  6. Attribute VB_Creatable = False
  7. Attribute VB_Exposed = False
  8.  
  9. Private m_Collection As New Collection
  10. Public Sub A_ReadMe()
  11. 'This template is designed for use with the RAD-Copy Buddy.
  12. '
  13. 'Purpose:   This template provides all procedures required to
  14. '           support a type-enforced collection of a class.
  15. '
  16. 'Usage:     1) Change {{ClassName}} to the name of the class to
  17. '              be collected.
  18. '           2) RAD-Copy all Declarations and procedures to
  19. '              a new VB Class in the same project as the
  20. '              collected class.
  21. '
  22. 'Tags:
  23. '{{ClassName}}
  24. End Sub
  25.  
  26. Public Function Add(Optional vKey As Variant, _
  27.                     Optional vBefore As Variant, _
  28.                     Optional vAfter As Variant) As ClassName
  29. '** Create a new object/variable of class ClassName
  30. '** add it to the collection and return a reference
  31. '** to it.  Use Key if available.
  32. '
  33.     Dim gClassName As ClassName
  34. '
  35.     Set gClassName = New ClassName
  36. '
  37.     If IsMissing(vKey) Then
  38.         If Not IsMissing(vBefore) Then
  39.             m_Collection.Add Item:=gClassName, Before:=vBefore
  40.         ElseIf Not IsMissing(vAfter) Then
  41.             m_Collection.Add Item:=gClassName, After:=vAfter
  42.         Else
  43.             m_Collection.Add Item:=gClassName
  44.         End If
  45.     Else
  46.         If Not IsMissing(vBefore) Then
  47.             m_Collection.Add Item:=gClassName, Key:=vKey, Before:=vBefore
  48.         ElseIf Not IsMissing(vAfter) Then
  49.             m_Collection.Add Item:=gClassName, Key:=vKey, After:=vAfter
  50.         Else
  51.             m_Collection.Add Item:=gClassName, Key:=vKey
  52.         End If
  53.     End If
  54. '
  55.     Set Add = gClassName
  56.     Exit Function
  57. '
  58. End Function
  59.  
  60.  
  61. Public Sub Remove(vIndex As Variant)
  62. '
  63.     m_Collection.Remove vIndex
  64.     Exit Sub
  65. '
  66. End Sub
  67.  
  68.  
  69. Public Function ClassName(vIndex As Variant) As ClassName
  70. '
  71.     Set ClassName = m_Collection(vIndex)
  72.     Exit Function
  73. '
  74. End Function
  75.  
  76.  
  77. Public Function Count() As Long
  78. '
  79.     Count = m_Collection.Count
  80.     Exit Function
  81. '
  82. End Function
  83. Public Sub ChangeKey(gClassName As ClassName, NewKey As String)
  84. '** Loop thru all ClassName objects in the collection
  85. '** to find supplied object.  Remove and re-add with
  86. '** new key.
  87. '
  88.     Dim nIndex As Integer
  89.     Dim gColObj As ClassName
  90. '
  91.     nIndex = 1
  92.     For Each gColObj In m_Collection
  93. '
  94.         If gClassName Is gColObj Then
  95.             m_Collection.Remove nIndex
  96.             m_Collection.Add Item:=gClassName, Key:=NewKey
  97.             Exit Sub
  98.         End If
  99. '
  100.         nIndex = nIndex + 1
  101.     Next
  102.     Exit Sub
  103. '
  104. End Sub
  105.  
  106.  
  107.